/*
 * libFuse.h
 *
 *  Created on: 18/04/2012
 *      Author: utnso
 */

#ifndef LIBFUSE_H_
#define LIBFUSE_H_

//INCLUDES
#include <stdint.h>
#include "libImprimirPorConsola.h"
#include <fuse.h>
#include <errno.h>
#include <pthread.h>
#include "libExtended2.h"
//#include "libPaquetes.h"
//#include "libSockets.h"
//#include "libArchivoLog.h"
//#include "libCache.h"
#include "libPath.h"

//TIPOS

typedef struct argFUSE_t{
        int32_t argc;
        int32_t* res;
        char** argv;
}__attribute__ ((packed)) argFUSE_t;
//FUNCIONES

void iniciarFUSE(void*);

uint8_t todosLosCaracteresIguales(char*, uint32_t);

void ejecutarFUSE(int32_t, char**);

int8_t ejecutar_CUCA_FUSE(void); //ELIMINAR

int32_t ASLPC_getattr(const char*, struct stat*);

int32_t ASLPC_mkdir(const char*, mode_t);

int32_t ASLPC_rmdir(const char*);

//int32_t ASLPC_rename(const char*, const char*);

int32_t ASLPC_ftruncate(const char*, off_t, struct fuse_file_info*);

int32_t ASLPC_open(const char*, struct fuse_file_info*);

int32_t ASLPC_read(const char*, char*, size_t, off_t, struct fuse_file_info*);

int32_t ASLPC_write(const char*, const char*, size_t, off_t, struct fuse_file_info*);

//int32_t ASLPC_flush(const char*, struct fuse_file_info*);

int32_t ASLPC_release(const char*, struct fuse_file_info*);

int32_t ASLPC_readdir(const char*, void*, fuse_fill_dir_t, off_t, struct fuse_file_info*);

//int32_t ASLPC_access(const char*, int32_t);

int32_t ASLPC_create(const char*, mode_t, struct fuse_file_info*);

int32_t ASLPC_unlink(const char*);

#endif /* LIBFUSE_H_ */
